package gold.gold02;

/**
 * 字符串, StringBuilder, 二进制
 */
public class S0502二进制数转字符串 {
    /**
     * 100, 可能更多的是对这个边界条件的处理吧。
     * StringBuilder用append方法,
     * 单纯把StringBuilder换成String的拼接, 会从100->15, 还是差挺多的。
     */
    public String printBin(double num) {
        StringBuilder sb = new StringBuilder();
        sb.append("0.");
        for(int i = 0; i < 32; i++){
            num = num * 2.0d; // 反复乘2, 然后取个位数
            if(num == 0) break;
            if(num >= 1){
                sb.append('1');
                num = num - 1;
            }else{
                sb.append('0');
            }
        }
        if(num != 0) return "ERROR";
        return sb.toString();
    }

}
